package com.gitee.pulanos.pangu.showcases.dubbo.api;

import cn.hutool.core.lang.Console;
import cn.hutool.cron.CronUtil;
import cn.hutool.cron.task.Task;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 * 演示动态改变日志级别的方法
 */
@Slf4j
@Component
public class DynamicLogService {

    /**
     * 可以在配置中心设置日志级别然后查看控制台的输出效果
     * <pre>logging.level.com.gitee.pulanos.pangu=DEBUG</pre>
     */
    @PostConstruct
    public void log(){
        // 演示作业：5秒执行一次
        CronUtil.schedule("*/5 * * * * *", new Task() {
            @Override
            public void execute() {
                Console.log("演示动态设置日志输出级别");
                log.debug("debug msg...");
                log.info("info msg...");
                log.warn("warn msg...");
                log.error("error msg...（仅是演示，并非出错。）");
            }
        });
        CronUtil.setMatchSecond(true);
        CronUtil.start();
    }

}
